package com.dragoncombin.homework.Module03.Problem05;

public class MainTest {

    public static void main(String[] args) {
        /*
        5. 编程题

        使用集合实现斗地主游戏的部分功能，要求如下：

        （1）首先准备 54 张扑克牌并打乱顺序。

        （2）由三个玩家交替摸牌每人 17 张扑克牌，最后三张留作底牌。

        （3）查看三个玩家手中的扑克牌和底牌。

        （4）其中玩家手中的扑克牌需要按照大小顺序打印，规则如下：

            手中扑克牌从大到小的摆放顺序：大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3
         */

        System.out.println("=========斗地主=========");
        // 1. 创建三个玩家
        Player p1 = new Player(1001, "张三");
        Player p2 = new Player(1002, "李四");
        Player p3 = new Player(1003, "王五");

        System.out.println("欢迎玩家 " + p1.getName() + "!");
        System.out.println("欢迎玩家 " + p2.getName() + "!");
        System.out.println("欢迎玩家 " + p3.getName() + "!");

        // 2. 玩家洗牌
        System.out.println("现在请玩家 " + p1.getName() + " 洗牌。。。");
        p1.shuffleCards();

        // 3. 三个玩家轮流抓牌, 直到剩下三张
        System.out.println("**现在请玩抓牌。。。**");
        boolean isEnd = false;
        while(!isEnd) {
            // 如果玩家能够拿牌，表示此时没有抓完牌
            isEnd = !p1.getCard();
            // 只要一个玩家能够正常抓牌，表明本轮不是终点
            p2.getCard();
            p3.getCard();
        }
        System.out.println("剩下三张底牌，抓牌结束。。。");

        // 4. 分别打印每个玩家手中的牌
        System.out.println("============打印玩家手中的牌============");
        p1.printPlayerCards();
        System.out.println("=======================================");
        p2.printPlayerCards();
        System.out.println("=======================================");
        p3.printPlayerCards();
        System.out.println("===============打印底牌=================");
        // 5. 打印底牌
        System.out.println("底牌为：");
        Player.printDeckCard();
    }
}
